perm filename CRYPT.FAI[2,JMC] blob
sn#166619 filedate 1974-10-12 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE CRYPT
C00003 00003 FAC←1 ↔ SWAC←2 ↔ CNT1←3 FILE NAME SCANNER
C00008 00004 STACK: BLOCK 10
C00011 ENDMK
C⊗;
TITLE CRYPT
S: MOVSI 2,S-LAST ;TAMPERING DETECTOR
MOVEI 3,0
MOVE 4,S(2)
FMP 4,0
ROT 3,1
ADD 3,4
AOBJN 2,S+2
CAMN 3,1
JRST GO
HALT
FAC←1 ↔ SWAC←2 ↔ CNT1←3 ;FILE NAME SCANNER
DMODE: 10 ;DEVICE AND MODE SPEC
DEV: 0
IOBUF: 0
FN1: 0 ;FILE NAME SPEC
FN2: 0
PROT: 0
PPN: 0
DEFN1: 0 ;DEFAULT FILE NAME
DEFN2: 0 ;DEFAULT EXTENSION
DEFPN: 0 ;DEFAULT PPN
DEFDV: SIXBIT /DSK/ ;DEFAULT DEVICE
PNTR: 0
RDFIL: SETZ SWAC, ;FIRST NAME AND/OR DEVICE
MOVE 0,DEFDV
MOVEM 0,DEV
MOVE 0,DEFN2
MOVEM 0,FN2
MOVE 0,DEFM↓α84(Lj>Z⊗hIA2B∧p4*R∃J≥h&lzZ∀%αb∩⊗~sλ4(&lzZ⊗4K↓2~9λh(&6⎇2∀%AeZB>&u!↓Y24qFt4PJ6>Z,h%A2∧rRH4PJ6>Z,H&∞:# 1X4PJ&:∞E:0&~_4*~tah&*,jB8&≥:ε
2
*>P4PJ∞ε&pJ~ε
b⊃iλ$KZ&9α≤
N∃α|1α∩⊗4J∞∀4PJ*JN Jmα6⎇2∀%Ad29D4PH%↓α≤
&0&≤rQE10h($%ααN⊗RPIA04PH%↓αlzZ⊗4K↓2∩⊗0h($%αα*JN JRJf=h4(&≤
&8&4
1 r⊂4(&U∩NP&$zR@4PJ∞ε&pJ~ε
b∩mλ4PJ*JN JBεJh(&∞J8&~→1 ↓⊂h(&*∃~P&:⎇4*F,zQh&≤
&∀&4
1λ
⊂4(&U∩NP&uλ4(&≤
&0&≤rQE10h(&N-"j4&4qD4(MB>H&≥:ε
1λh(&ε$"$&∞u!E1DhP&*J≥ &:>h*:EPJ∞ε&pJ~ε
c T4(LRJNPM"⊗J@hP&∞εLp&~ε~aEH4PJ*JN JR⊗Jh(&∞J8&~→1E](h(&*∃~P&R-∩@4(L~ε&≡(J~ε
c!@4(LRJNPMYα~:-⊃h&>-"NRI¬ZεN∞MQ↓
&db⊗≡εbα~&2*α:ε6*aαRJJαε≡εLqi
thP$$&≤bJ
~Hh($$LRJNQα↓αJ∩4J1αthP&∞εL`&~ε~aEQ@hP&NV∀H&~ε~aQ@4PJNV
HJ~ε
c!@4(L~ε&0L~:QEc04(&≤*Rj4L29D4PJ&∩B⊂J~ε
eα:RHhR:>APJ&:∞E:0&~_4(&≤z*≡∀L~:QEd2:04PJ*JN J~:⊗⊂h(4*$zRAhM~⊗RjhJ~9HHH%n⊗E"⊗:NLz84(Lj>Z∀K↓2nB|J:Q↓2b~9Jhh(&6⎇2⊗4%αbB:R⊂h(&6⎇2⊗$&≤rQE1_h(&&t~"↑0L2ε4T2:1IPJ*V6∧p&N↑→2FV⎇!H4(L~ε&8L2ε
1∃Yλ4(LRJNPMαεJ@hP&∞εLp&~ε~a ↓λhP&*J≥ &:>β⊂4*F,zQIhL~ε&∀L2ε
1⊂ λ4(LRJNPLrEH4PJb>HM~↑ε
cλ4(&"∩$&≤rQE1λh(&*∃~P&:⎇↓H4*u Ih&≤
&8&4
1E(h(&*∃~P&R-∩@4(L~ε&8AC,12
JRST TERP
CAIN FAC,175
JRST TERP
CAIGE FAC,40
JRST FNER
CAIL FAC,140
SUBI FAC,40
SUBI FAC,40
IDPB FAC,PNTR
NOP2: INCHWL FAC
SOJGE CNT1,FNL2
JRST FNER
PARP: HRRZ 0,PPN ;PROJECT NAME
MOVEM 0,PPN
MOVE 0,[POINT 6,PPN]
MOVEM 0,PNTR
MOVEI CNT1,3
INCHWL FAC
FNL3: JUMPN SWAC,QUOT3
CAIN FAC,"]"
JRST TERP
CAIN FAC,","
JRST COMP
CAIN FAC," "
JRST NOP3
QUOT3: CAIE FAC,"↓"
JRST NQ3
XOR SWAC,1
ADDI CNT1,1
JRST NOP3
NQ3: CAIN FAC,15
JRST TERP
CAIN FAC,12
JRST TERP
CAIN FAC,175
JRST TERP
CAIGE FAC,40
JRST FNER
CAIL FAC,140
SUBI FAC,40
SUBI FAC,40
IDPB FAC,PNTR
NOP3: INCHWL FAC
SOJGE CNT1,FNL3
JRST FNER
COMP: HLLZ 0,PPN ;PROGRAMMER NAME
MOVEM 0,PPN
MOVE 0,[POINT 6,PPN,3*6-1]
MOVEM 0,PNTR
MOVEI CNT1,3
INCHWL FAC
FNL4: JUMPN SWAC,QUOT4
CAIN FAC,"]"
JRST TERP
CAIN FAC," "
JRST NOP4
QUOT4: CAIE FAC,"↓"
JRST NQ4
ADDI CNT1,1
XOR SWAC,1
JRST NOP4
NQ4: CAIN FAC,15
JRST TERP
CAIN FAC,12
JRST TERP
CAIN FAC,175
JRST TERP
CAIGE FAC,40
JRST FNER
CAIL FAC,140
SUBI FAC,40
SUBI FAC,40
IDPB FAC,PNTR
NOP4: INCHWL FAC
SOJGE CNT1,FNL4
JRST FNER
TERP: CAIE FAC,175 ;END OF INPUT LINE
CAIN FAC,12
POPJ 17,
INCHWL FAC
JRST TERP
STACK: BLOCK 10
IHD: BLOCK 3
OHD: BLOCK 3
KEY1←15 ↔ KEY2←16
GO: MOVEI 17,STACK
OUTSTR [ASCIZ "ENCODE OR DECODE:"]
FMO: SETZ 5,
INLM: INCHWL 2
JUMPN 5,STAN
ANDI 2,37
MOVE 5,2
STAN: CAIN 2,15
INCHWL 2
CAIN 2,12
JRST IDNM
CAIE 2,175
JRST INLM
IDNM: CAIE 5,4
CAIN 5,5
JRST MOK
OUTSTR [ASCIZ "WHAZZAT? TRY AGAIN:"]
JRST FMO
MOK: OUTSTR [ASCIZ "INPUT FILE:"]
MOVE 0,[ 0,,IHD]
MOVEM 0,IOBUF
MOVEI 0,14
MOVEM 0,DMODE
INFL: PUSHJ 17,RDFIL
OPEN 1,DMODE
JRST .+2
LOOKUP 1,FN1
JRST [ OUTSTR [ASCIZ "CAN'T FIND IT, TRY AGAIN:"]
JRST INFL]
OUTSTR [ASCIZ "OUTPUT FILE:"]
MOVE 0,[ OHD,,0]
MOVEM 0,IOBUF
MOVEI 0,14
MOVEM 0,DMODE
OUFL: PUSHJ 17,RDFIL
OPEN 2,DMODE
JRST .+2
ENTER 2,FN1
JRST [ OUTSTR [ASCIZ "CAN'T WRITE THERE, TRY AGAIN:"]
JRST OUFL]
OUTSTR [ASCIZ "KEYWORD:"]
CTLV
SETO KEY1,
INL: INCHWL 2
CAIN 2,15
INCHWL 2
CAIE 2,12
CAIN 2,175
JRST IDN
ANDI 2,177
CAIL 2,140
SUBI 2,40
CAIGE 2,40
ADDI 2,40
ROT KEY1,11
XOR KEY1,2
JRST INL
IDN: CTLV
CLRBFI
MOVS KEY2,KEY1
INPUT 1,0
OUTPUT 2,0
CAIE 5,5
JRST DEC
ACCTIM 4,
IMULI 4,377775
IDPB 4,OHD+1
SOS OHD+2
JRST RDL
DEC: ILDB 4,IHD+1
SOS IHD+2
RDL: XOR KEY1,4
RDLOOP: SKIPN IHD+2
IN 1,0
JRST NOIN
OUTPUT 2,0
CLOSE 1,0
CLOSE 2,0
EXIT
NOIN: ILDB 1,IHD+1
IMULI KEY1,377775
IMULI KEY2,100003
MOVEI 14,44
SETZB 12,13
RLOOP: TRNE KEY1,1 ;BESM-6 BIT MAP, BUT MORE SO
JRST AONE
TRNE KEY2,1
TRON 12,1
ROT 12,-1
JRST BDON
AONE: ROT 13,1
TRNE KEY2,1
TRON 13,1
BDON: ROTC KEY1,-1
SOJG 14,RLOOP
EXCH KEY1,KEY2
OR 12,13
XOR 1,12
SOS IHD+2
SKIPN OHD+2
OUTPUT 2,0
IDPB 1,OHD+1
SOS OHD+2
LAST: JRST RDLOOP
END GO